import { createStore, createLogger } from 'vuex'
import createPersistedstate from 'vuex-persistedstate'
import user from './modules/user'
import cart from './modules/cart'
import category from './modules/category'
// import * as Cookies from 'js-cookie'
export default createStore({
  state: {},
  mutations: {},
  actions: {},
  modules: {
    user,
    cart,
    category
  },
  // plugins: [
  //   // 作用机制: 加入持久化缓存的模板中的数据一旦发生变化之后 就会自动往本地存
  //   // vuex 中的 cart user 中的响应式数据和本地ls永远是同步(双向奔赴 vuex -> 本地  刷新后  本地 -> vuex)
  //   createPersistedstate({
  //     key: 'arbbit', // 将来vue中的数据存入本地ls时,使用的key的名称
  //     paths: ['user', 'cart'], // 想把那些模板中的响应式数据进行持久化 就把他的名字写过来
  //     storage: {
  //       getItem: (key) => Cookies.get(key),
  //       // Please see https://github.com/js-cookie/js-cookie#json, on how to handle JSON.
  //       setItem: (key, value) =>
  //         Cookies.set(key, value, { expires: 3, secure: true }),
  //       removeItem: (key) => Cookies.remove(key)
  //     }
  //   }),
  //   createLogger()
  // ]
  plugins: [
    createPersistedstate({
      key: 'rabbit', // 将来vuex中的数据存入本地ls时 使用的key的名称
      paths: ['user', 'cart'] // 想把哪些模板中的响应式数据进行持久化 就把它的名字写过来
    }),
    createLogger() // 每次提交mutation函数都会在浏览器打印区域 打印出本次mutation提交的关键信息
  ]

})
